package it.pecuswap.backend.entities;

// Generated 31-dic-2014 16.28.33 by Hibernate Tools 4.0.0

import java.util.Date;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 * Forum generated by hbm2java
 */
@Entity
@Table(name = "forum")
public class Forum implements java.io.Serializable {

	private static final long serialVersionUID = -8966596439581615241L;
	private long idForum;
	private Utenti utenti;
	private StatiForum statiForum;
	private String nome;
	private String descrizione;
	private Date dataCreazione;
	private Date dataUltimaModifica;
	private Long idUtenteUltModifica;
	private Set<AssUtentiForum> assUtentiForums = new HashSet<AssUtentiForum>(0);
	private Set<Thread> threads = new HashSet<Thread>(0);

	public Forum() {
	}

	public Forum(long idForum) {
		this.idForum = idForum;
	}

	public Forum(long idForum, Utenti utenti, StatiForum statiForum,
			String nome, String descrizione, Date dataCreazione,
			Date dataUltimaModifica, Long idUtenteUltModifica,
			Set<AssUtentiForum> assUtentiForums, Set<Thread> threads) {
		this.idForum = idForum;
		this.utenti = utenti;
		this.statiForum = statiForum;
		this.nome = nome;
		this.descrizione = descrizione;
		this.dataCreazione = dataCreazione;
		this.dataUltimaModifica = dataUltimaModifica;
		this.idUtenteUltModifica = idUtenteUltModifica;
		this.assUtentiForums = assUtentiForums;
		this.threads = threads;
	}

	@Id
	@Column(name = "id_forum", unique = true, nullable = false)
	public long getIdForum() {
		return this.idForum;
	}

	public void setIdForum(long idForum) {
		this.idForum = idForum;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "id_utente_creatore")
	public Utenti getUtenti() {
		return this.utenti;
	}

	public void setUtenti(Utenti utenti) {
		this.utenti = utenti;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "id_stato_forum")
	public StatiForum getStatiForum() {
		return this.statiForum;
	}

	public void setStatiForum(StatiForum statiForum) {
		this.statiForum = statiForum;
	}

	@Column(name = "nome")
	public String getNome() {
		return this.nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	@Column(name = "descrizione")
	public String getDescrizione() {
		return this.descrizione;
	}

	public void setDescrizione(String descrizione) {
		this.descrizione = descrizione;
	}

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "data_creazione", length = 29)
	public Date getDataCreazione() {
		return this.dataCreazione;
	}

	public void setDataCreazione(Date dataCreazione) {
		this.dataCreazione = dataCreazione;
	}

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "data_ultima_modifica", length = 29)
	public Date getDataUltimaModifica() {
		return this.dataUltimaModifica;
	}

	public void setDataUltimaModifica(Date dataUltimaModifica) {
		this.dataUltimaModifica = dataUltimaModifica;
	}

	@Column(name = "id_utente_ult_modifica")
	public Long getIdUtenteUltModifica() {
		return this.idUtenteUltModifica;
	}

	public void setIdUtenteUltModifica(Long idUtenteUltModifica) {
		this.idUtenteUltModifica = idUtenteUltModifica;
	}

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "forum")
	public Set<AssUtentiForum> getAssUtentiForums() {
		return this.assUtentiForums;
	}

	public void setAssUtentiForums(Set<AssUtentiForum> assUtentiForums) {
		this.assUtentiForums = assUtentiForums;
	}

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "forum")
	public Set<Thread> getThreads() {
		return this.threads;
	}

	public void setThreads(Set<Thread> threads) {
		this.threads = threads;
	}

}
